import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
// 引入假数据
import '../data/CustomData.dart';

// 引入无缝滚动的 item 组件
import 'HomeScrollItem.dart';

class HomeBody extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ListView(
      children: <Widget>[
        // 写四个无缝滚动区域
        _HomeBodyArea(title: '最新电影'),
        _HomeBodyArea(title: '最新电视剧'),
        _HomeBodyArea(title: '最新动漫'),
        _HomeBodyArea(title: '最新综艺'),
      ],
    );
  }
}

class _HomeBodyArea extends StatelessWidget {
  // 接受参数
  _HomeBodyArea({Key key, @required this.title }):super(key: key);
  final String title;

  // 假数据，接受到一个数据的数组
  List scrolllist1 = new CustomData().scrolllist1;

  @override
  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        // 第一个文字区域 “最新电影” 和 “更多”
        Padding(
          padding: EdgeInsets.fromLTRB(10, 10, 10, 10),
          child: Row(
            children: <Widget>[
              // 弹性盒子容器, 可以自动占据多余空间
              Expanded(
                child: Text(
                  '$title',
                  style: TextStyle(fontSize: 20),
                ),
              ),
              Text(
                '更多>>',
                style: TextStyle(color: Colors.blue),
              ),
            ],
          ),
        ),

        // 无缝滚动区域
        Container(
          height: 270,
          // 这个数据是不固定的, 所以使用 ListView.builder 这个方法，内部会进行遍历
          child: ListView.builder(
            // 需要横向排版，如果不加，默认是纵向排列
            scrollDirection: Axis.horizontal,
            // 遍历的次数
            itemCount: scrolllist1.length,
            // 每次遍历执行的函数，返回值是一个widget组件，这样组件就一项一项排列到页面上
            itemBuilder: (BuildContext context, int index) =>
                HomeScrollItem(item: scrolllist1[index]),
          ),
        ),
      ],
    );
  }
}
